#ifndef _SPREADSHEETS_HH_
#define _SPREADSHEETS_HH_

#include <string>

namespace spreadsheets {

/**
 * Enum lists all the types of coordinate systems recognized.
 */
enum CoordEncoding {
    ALNUM,  ///< Alphabetic for columns and numeric for rows,
            ///< like BC23 = (55, 23)
    DIGIT,  ///< Numeric for both columns and rows,  
            ///< like R23C55 = (55, 23)
    UNKNOWN ///< Something new, out of this world!
};

/**
 * Guess the coordinate system in which the input coordinates are specified
 * @param[in] coordinates Coordinates in some system
 * @return The type of encoding
 */
CoordEncoding guess_coord_system(const std::string& coordinates);

/**
 * Convert from
 */
template<typename FromType, typename ToType>
bool convert(const FromType& from, ToType& to);


} // namespace spreadsheets

#endif // _SPREADSHEETS_HH_
